Short answer: generalizations are always wrong (that's a generalization :-).
The long answer is another generalization: most C++ programmers use regular containment (also called 'composition' or 'aggregation') more often than private inheritance. The usual reason is that they don't *want* to have access to the internals of too many other classes.
Private inheritance is not evil; it's just more expensive to maintain, since it increases the number of classes that have access to 'internal' parts of other classes (coupling). The 'protected' parts of a class are more likely to change than the 'public' parts.